1. Field of the Invention
The present invention relates to telecommunications and more particularly to real-time protocol (RTP) packet-based media sessions, such as voice-over-IP sessions for instance.
2. Description of Related Art
Conventionally in an RTP media conference, a central conference server will enter into an RTP media session respectively with each of a plurality of client stations. Each client station may then send to the server an RTP media packet stream carrying digitally encoded real-time media (such as voice, audio, and/or video) and/or may receive from the server an RTP media packet stream carrying digitally encoded media.
In many cases, only one station will be allowed to have “the floor” at once, which means that the server will output to the other station(s) the media provided by only one station at a time. Various mechanisms of floor control can be used to govern this process.
Pursuant to Request for Comments (RFC) 1889, published by the Internet Engineering Task Force in January 1996 (entitled “RTP: A Transport Protocol for Real-Time Applications), each packet in an RTP media stream can include an RTP header that includes certain defined fields, including (i) a sequence number, which indicates a position of the packet in the stream, (ii) a timestamp, which indicates the instant when the data in the packet was established (sampled), (iii) a payload type, which indicates the format of the media, to enable a receiving end to play out the media, (iv) a “synchronization source (SSRC) identifier,” which is a randomly generated code that distinguishes the source from others in the session, and (v) optionally one or more “contributing source (CSRC) identifiers” indicating the SSRCs of each stream that formed the basis for the RTP stream.
When a conference server receives an incoming RTP media stream from a given station in a conference, each packet of the incoming stream will thus contain a randomly-generated SSRC that uniquely distinguishes the source of that media. The conference server may then send the media in an outgoing RTP media stream to each other participating station, and each packet of the outgoing stream would contain a CSRC correlated with the SSRC indicated in the incoming RTP stream. Each receiving station could thus read the CSRC in order to distinguish the current media source from other media sources that may be participating in the conference.
Unfortunately, however, the only function of an SSRC or CSRC by itself is to distinguish the current media source from others, rather than to actually identify the current media source. For instance, when a station receives an RTP stream, the station can determine from the SSRC or CSRC that the media came from a particular source. However, the station could not tell from the SSRC or CSRC alone what source that was, since the SSRC is simply a randomly generated number that has no meaning outside the context of the RTP stream. Thus, even though RFC 1889 describes the SSRC or CSRC as an “identifier,” the SSRC or CSRC does not actually identify the current media source; at best, it only represents the current media source.
In part to allow a receiving station to determine the actual identity of a current talker (rather than to just distinguish the current talker from others), RFC 1889 introduces a control protocol, called the “RTP Control Protocol” (RTCP). According to RFC 1889, RTCP provides for periodically transmitting special control packets to the participants of an RTP session, separate from the RTP stream that the participants are exchanging (i.e., the RTCP control packets are not themselves RTP packets). According to the RFC, each RTCP packet can contain several “source description” (SDES) items, which can specify a direct correlation between an SSRC and a user's actual name, e-mail address or the like.
Thus, a receiving station can receive an RTCP packet that correlates an SSRC with the name of a user who is the source of real-time media, and the receiving station can receive an RTP media stream in which the RTP header of each packet indicates that SSRC. By reference to the correlation specified by the RTCP packet, the receiving station can thereby determine the name of the user.